package com.code.bolg.utils;

import com.code.bolg.enums.ResultEnum;
import com.code.bolg.exception.BolgExcetion;
import com.code.bolg.vo.ResultVo;
import org.springframework.http.HttpStatus;

import java.util.HashMap;
import java.util.Map;

public class ApiReturnUtil {
    /**
     *  @功能:成功
     *  @作者:jh @代号:金华
     *  @时间:2018年10月11日
     *  @return
     */
    public static ResultVo success(Object obj) {
        ResultVo msg = new ResultVo();
        msg.setData(obj);
        msg.setMessage(HttpStatus.OK.getReasonPhrase());
        msg.setCode(HttpStatus.OK.value());
        return msg;
    }
    /**
     *  @功能:枚举
     *  @作者:jh @代号:金华
     *  @时间:2018年10月11日
     *  @return
     */
    public static ResultVo enumResult(Object o) {
        ResultVo msg = new ResultVo();
        if(o instanceof  HttpStatus){
            HttpStatus httpStatus = (HttpStatus)o;
            msg.setMessage(httpStatus.getReasonPhrase());
            msg.setCode(httpStatus.value());
        }
        if(o instanceof  ResultEnum){
            ResultEnum resultEnum = (ResultEnum) o;
            msg.setMessage(resultEnum.getMessage());
            msg.setCode(resultEnum.getCode());
        }
        return msg;
    }
    /**
     *  @功能:自定义错误
     *  @作者:jh @代号:金华
     *  @时间:2018年10月11日
     *  @return
     */
    public static ResultVo  custonFail(BolgExcetion e) {
        ResultVo msg = new ResultVo();
        msg.setMessage(e.getMessage());
        msg.setCode(e.getCode());
        return msg;
    }
    /**
     *  @功能:操作异常
     *  @作者:jh @代号:金华
     *  @时间:2018年10月11日
     *  @return
     */
    public static ResultVo  fail() {
        ResultVo msg = new ResultVo();
        msg.setMessage(HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase());
        msg.setCode(HttpStatus.INTERNAL_SERVER_ERROR.value());
        return msg;
    }
}
